<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <link rel="stylesheet" href="./css/index.css" />
    <title>记事本</title>
</head>

<body>

    <!-- 主体区域 -->
    <section id="app">
        <!-- 输入框 -->
        <!-- 3.添加功能 -->
        <header class="header">
            <h1>小黑记事本</h1>
            <input placeholder="请输入任务" class="new-todo" v-model="txt" />
            <button class="add" @click="tj">添加任务</button>
        </header>
        <!-- 列表区域 -->
        <section class="main">
            <ul class="todo-list">
                <!-- 1.渲染数据 配合key一起渲染-->
                <li class="todo" v-for="(e,i) in arr" :key="e.id">
                    <div class="view">
                        <!-- 序号使用下标+1  内容使用todo-->
                        <span class="index">{{i+1}}.</span> <label>{{e.todo}}</label>
                        <!-- 2.删除功能 双传实参 为id -->
                        <button class="destroy" @click="del(e.id)"></button>
                    </div>
                </li>
            </ul>
        </section>
        <!-- 统计和清空 -->
        <!-- 当数组长度<=0 时隐藏 取反 -->
        <footer class="footer" v-show="arr.length>0">
            <!-- 统计 -->
            <!-- 合计赋值 -->
            <span class="todo-count">合 计:<strong> {{arr.length}} </strong></span>
            <!-- 清空 -->
            <!-- 清空功能 数组清空且底部区域隐藏 -->
            <button class="clear-completed" @click="qc">
                清空任务
            </button>
        </footer>
    </section>

    <!-- 底部 -->
    <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
    <script>

        const app = new Vue({
            el: '#app',
            // 自己写一组数据
            data: {
                txt: '',
                arr: [
                    { id: 1, todo: '吃饭' },
                    { id: 2, todo: '吃饭' },
                    { id: 3, todo: '吃饭' },
                    { id: 4, todo: '吃饭' }
                ]
            },
            methods: {
                // 删除事件
                del(id) {
                    // 筛选出所有满足id不等于点击id的对象形成新的数组
                    this.arr = this.arr.filter(e => id !== e.id)
                },
                // 添加时间
                tj() {
                    // 首先判断内容不能为空
                    if (this.txt === '') {
                        alert('内容不能为空！')
                        return
                    }
                    // 将内容从前添加到arr数组 todo去value值 id随机数
                    this.arr.unshift({ id: Math.random() * 10, todo: this.txt })
                    // 清空表单
                    this.txt = ''
                },
                // 清空功能
                qc() {
                    this.arr = []
                }
            }
        })

    </script>
</body>

</html>